{
 "cells": [
  {
   "cell_type": "raw",
   "metadata": {
    "raw_mimetype": "text/restructuredtext"
   },
   "source": [
    ".. _nb_omopso:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## OMOPSO"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Example"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "from jmetal.algorithm.multiobjective.omopso import OMOPSO\n",
    "from jmetal.operator import UniformMutation\n",
    "from jmetal.operator.mutation import NonUniformMutation\n",
    "from jmetal.problem import ZDT1\n",
    "from jmetal.util.archive import CrowdingDistanceArchive\n",
    "from jmetal.util.termination_criterion import StoppingByEvaluations\n",
    "\n",
    "problem = ZDT1()\n",
    "\n",
    "mutation_probability = 1.0 / problem.number_of_variables\n",
    "max_evaluations = 25000\n",
    "swarm_size = 100\n",
    "\n",
    "algorithm = OMOPSO(\n",
    "    problem=problem,\n",
    "    swarm_size=swarm_size,\n",
    "    epsilon=0.0075,\n",
    "    uniform_mutation=UniformMutation(probability=mutation_probability, perturbation=0.5),\n",
    "    non_uniform_mutation=NonUniformMutation(mutation_probability, perturbation=0.5,\n",
    "                                            max_iterations=int(max_evaluations / swarm_size)),\n",
    "    leaders=CrowdingDistanceArchive(100),\n",
    "    termination_criterion=StoppingByEvaluations(max=max_evaluations)\n",
    ")\n",
    "\n",
    "algorithm.run()\n",
    "solutions = algorithm.get_result()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can now visualize the Pareto front approximation:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "pycharm": {
     "is_executing": true,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from jmetal.lab.visualization.plotting import Plot\n",
    "from jmetal.util.solution import get_non_dominated_solutions\n",
    "\n",
    "front = get_non_dominated_solutions(solutions)\n",
    "\n",
    "plot_front = Plot(plot_title='Pareto front approximation', axis_labels=['x', 'y'])\n",
    "plot_front.plot(front, label='OMOPSO-ZDT1')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### API"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%% raw\n"
    },
    "raw_mimetype": "text/restructuredtext"
   },
   "source": [
    ".. autoclass:: jmetal.algorithm.multiobjective.omopso.OMOPSO\n",
    "   :members:\n",
    "   :undoc-members:\n",
    "   :show-inheritance:\n"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Raw Cell Format",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  },
  "pycharm": {
   "stem_cell": {
    "cell_type": "raw",
    "metadata": {
     "collapsed": false
    },
    "source": []
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
